{{- $params := .Scratch.Get "params" -}}

{{- with .Site.Params.verification.google -}}
  <meta name="google-site-verification" content="{{ . }}" />
{{- end -}}
{{- with .Site.Params.verification.bing -}}
  <meta name="msvalidate.01" content="{{ . }}" />
{{- end -}}
{{- with .Site.Params.verification.yandex -}}
  <meta name="yandex-verification" content="{{ . }}" />
{{- end -}}
{{- with .Site.Params.verification.pinterest -}}
  <meta name="p:domain_verify" content="{{ . }}" />
{{- end -}}
{{- with .Site.Params.verification.baidu -}}
  <meta name="baidu-site-verification" content="{{ . }}" />
{{- end -}}
{{- with .Site.Params.verification.so -}}
  <meta name="360-site-verification" content="{{ . }}" />
{{- end -}}
{{- with .Site.Params.verification.sogou -}}
  <meta name="sogou_site_verification" content="{{ . }}" />
{{- end -}}

{{- /* Home SEO */ -}}
{{- if .IsHome -}}
  <script type="application/ld+json">
  {
    "@context": "http://schema.org",
    "@type": "WebSite",
    "url": "{{ .Permalink }}",
    {{- with .Site.LanguageCode -}}
      "inLanguage": "{{ . }}",
    {{- end -}}
    {{- with .Site.Params.author.name -}}
      "author": {
        "@type": "Person",
        "name": {{ . | safeHTML }}
      },
    {{- end -}}
    {{- with .Site.Params.description -}}
      "description": {{ . | safeHTML }},
    {{- end -}}
    {{- $image := .Site.Params.seo.image -}}
    {{- with dict "Path" $image | partial "function/resource.html" -}}
      "image": {
        "@type": "ImageObject",
        "url": "{{ .Permalink }}",
        "width": {{ .Width }},
        "height": {{ .Height }}
      },
    {{- else -}}
      {{- with $image -}}
        "image": "{{ . | absURL }}",
      {{- end -}}
    {{- end -}}
    {{- with .Site.Params.seo.thumbnailUrl -}}
      {{- with dict "Path" . | partial "function/resource.html" -}}
        "thumbnailUrl": "{{ .Permalink }}",
      {{- else -}}
        "thumbnailUrl": "{{ . | absURL }}",
      {{- end -}}
    {{- end -}}
    {{- with .Site.Copyright -}}
      "license": "{{ . | safeHTML }}",
    {{- end -}}
    "name": {{ .Site.Title | safeHTML }}
  }
  </script>

{{- /* Page SEO */ -}}
{{- else if .IsPage -}}
  {{- $authorName := .Site.Params.author.name | default (T "single.author") -}}
  {{- with .Params.author -}}
    {{- if reflect.IsMap . -}}
      {{- $authorName = cond (isset . "name") .name $authorName -}}
    {{- else -}}
      {{- $authorName = . -}}
    {{- end -}}
  {{- end -}}
  <script type="application/ld+json">
  {
    "@context": "http://schema.org",
    "@type": "BlogPosting",
    "headline": {{ .Title | safeHTML }},
    "inLanguage": "{{ .Site.LanguageCode }}",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "{{ .Permalink }}"
    },
    {{- $images := $params.seo.images | default slice -}}
    {{- if not $images -}}
      {{- with .Resources.GetMatch "featured-image-preview" -}}
        {{- $images = slice "featured-image-preview" -}}
      {{- end -}}
      {{- with .Resources.GetMatch "featured-image" -}}
        {{- $images = slice "featured-image" -}}
      {{- end -}}
    {{- end -}}
    {{- with .Site.Params.seo.image -}}
      {{- $images = $images | default (slice .) -}}
    {{- end -}}
    {{- with $images -}}
      "image": [
        {{- range $index, $value := . -}}
          {{- if gt $index 0 }},{{ end -}}
          {{- with dict "Path" $value | partial "function/resource.html" -}}
            {
              "@type": "ImageObject",
              "url": "{{ .Permalink }}",
              "width": {{ .Width }},
              "height": {{ .Height }}
            }
          {{- else -}}
            {{- with $value -}}
              "{{ . | absURL }}"
            {{- end -}}
          {{- end -}}
        {{- end -}}
      ],
    {{- end -}}
    "genre": "{{ .Type }}",
    {{- with .Params.tags -}}
      "keywords": "{{ delimit . ", " }}",
    {{- end -}}
    "wordcount": {{ .WordCount }},
    "url": "{{ .Permalink }}",
    {{- if not .PublishDate.IsZero -}}
      "datePublished": {{ .PublishDate.Format "2006-01-02T15:04:05-07:00" | safeHTML }},
    {{- else if not .Date.IsZero -}}
      "datePublished": {{ .Date.Format "2006-01-02T15:04:05-07:00" | safeHTML }},
    {{- end -}}
    {{- with .Lastmod -}}
      "dateModified": {{ .Format "2006-01-02T15:04:05-07:00" | safeHTML }},
    {{- end -}}
    {{- with .Site.Copyright -}}
      "license": {{ . | safeHTML }},
    {{- end -}}
    {{- $publisher := $authorName | dict "name" -}}
    {{- $publisher = $params.seo.publisher | default dict | merge $publisher -}}
    "publisher": {
      "@type": "Organization",
      "name": {{ $publisher.name | safeHTML }}
      {{- $logo := $publisher.logoUrl -}}
      {{- with dict "Path" $logo | partial "function/resource.html" -}}
        ,"logo": {
          "@type": "ImageObject",
          "url": "{{ .Permalink }}",
          "width": {{ .Width }},
          "height": {{ .Height }}
        }
      {{- else -}}
        {{- with $logo -}}
          ,"logo": "{{ . | absURL }}"
        {{- end -}}
      {{- end -}}
    },
    {{- with $authorName -}}
      "author": {
        "@type": "Person",
        "name": {{ . | safeHTML }}
      },
    {{- end -}}
    "description": {{ .Description | safeHTML }}
  }
  </script>
{{- end -}}
